/*
 * RepeticaoSenha.java
 * Versão: 1.0
 * Data de Criação : 22/08/2011
 * Copyright (c) 2008-2011 Universidade Estadual de
 * Londrina - UEL.
 * Rodovia Celso Garcia Cid, Cidade Universitária,
 * Londrina, Paraná
 * Brasil
 * Todos os direitos reservados.
 *
 * Este software é de informação confidenciais de
 * propriedade da UEL Univesidade Estadual de Londrina.
 * ("Informações Confidenciais "). Você não poderá
 * compartilhar estas informações por ser de carater
 * confidencial e usará somente em acordo com os termos de
 * licençada UEL
 */
package br.uel.ati.jsfvalidator;

import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.component.UIInput;
import javax.faces.context.FacesContext;
import javax.faces.validator.FacesValidator;
import javax.faces.validator.ValidatorException;

/**
 * Esta classe compara a string de dois campos de texto presentes na interface
 * na página web, disparando uma mensagem de erro de validação caso não sejam
 * iguais.
 *
 * @author Humberto Ferreira da Luz Junior
 * @version 1.0
 */
@FacesValidator("br.uel.ati.validator.repeticaoSenha")
public class RepeticaoSenha implements javax.faces.validator.Validator {

    /**
     * Realiza a validação que compara a nova senha com sua repetição, 
     * verificando se ambas são iguais.
     *
     * @throws ValidatorException indica que a senha digitada pelo usuário não 
     * corresponde à que está a armazenada no BD.
     */
    @Override
    public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
        String email = (String) value;
        UIInput otherInput = (UIInput) context.getViewRoot().findComponent("alterar_senha_form:nova_senha");
        String otherValue = (String) otherInput.getSubmittedValue();
        if (!email.equals(otherValue)) {
            FacesMessage message = new FacesMessage("Repetição de senha incorreta!");
            message.setSeverity(FacesMessage.SEVERITY_ERROR);
            throw new ValidatorException(message);
        }
    }


}
